package com.hmy.infrastructure.service.signature;

import com.hmy.infrastructure.api.bo.request.signature.GetUploadUrlApiRequest;
import com.hmy.infrastructure.api.bo.response.signature.GetUploadUrlApiResponse;
import com.hmy.infrastructure.bo.request.signature.*;
import com.hmy.infrastructure.bo.response.signature.*;

public interface ISignatureService {
    /**
     * 获取上传文件地址
     * @param getUploadUrlRequest 获取文件地址请求参数
     * @return
     * @throws Exception
     */
    GetUploadUrlApiResponse getUploadFileUrl(GetUploadUrlApiRequest getUploadUrlRequest) throws Exception;

    CreateSignatureProcessResponse create(CreateSignatureProcessRequest createSignatureProcessRequest);

    CreateContractResponse createContract(CreateContractRequest createContractRequest);

    CreateContractByFileResponse createContractByFile(CreateContractByFileRequest createContractRequest);

    SignTemplateFieldFillResponse signTemplateFieldFill(SignTemplateFieldFillRequest signTemplateFieldFillRequest);

    FileTemplateFieldFillResponse fileTemplateFieldFill(FileTemplateFieldFillRequest fileTemplateFieldFillRequest);

    StartSignatureProcessResponse start(StartSignatureProcessRequest startSignatureProcessRequest);

    GetSignFileUrlResponse getSignFileUrl(GetSignFileUrlRequest getSignFileUrlRequest);

    GetSignTaskUrlResponse getSignTaskUrl(GetSignTaskUrlRequest getSignTaskUrlRequest);

    SignTaskCancelResponse signTaskCancel(SignTaskCancelRequest request);


}
